package edu.gmu.atelier;

/**
 * Factory for creating vectors and matrices.
 * @author James H. Pope
 */
public interface VectorFactory
{
    //------------------------------------------------------------------------//
    // Factory methods
    //------------------------------------------------------------------------//
    public Vector makeVector( int n );
    
    public Matrix makeIdentity( int n );
    
    public Matrix makeIdentity( int m, int n );
    
    //------------------------------------------------------------------------//
    // Primarily for testing - though could argue appropriate for all (Complex)
    //------------------------------------------------------------------------//
    public Matrix makeMatrix(double[][] data);
    
    public Vector makeVector(double[] data);
    
    //------------------------------------------------------------------------//
    // Element methods
    //------------------------------------------------------------------------//
    public Element makeZero( );
    
    public Element makeOne( );
}
